草庐IT

c++ - SIMD C++ 库

全部标签

c++ - 为什么 c++11 正则表达式(libc++ 实现)这么慢?

我与LinuxC正则表达式库进行了比较,#include#include#includeintmain(){constintcount=100000;regex_texp;intrv=regcomp(&exp,R"_(([a-zA-Z][a-zA-Z0-9]*)://([^/]+)(/[^]*)?)_",REG_EXTENDED);if(rv!=0){std::cout(end-start);std::cout在我的测试机上结果大约是60-70毫秒。然后我用了libc++的库,#include#include#includeintmain(){constintcount=100000;

c++ - 易于使用 C 或 C++ 中的绘图库?

我需要一个非常易于使用的绘图C或C++库。这意味着我不需要在其中放置按钮、框架或任何其他东西,而我只需要在图形窗口上绘制点、圆和线。这可能吗? 最佳答案 Cairo如果您正在寻求易用性,这是一个不错的选择。 关于c++-易于使用C或C++中的绘图库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6360216/

c++ - 我们可以给静态数组的大小一个变量吗

大家好,我想问一下,我读过我们只能通过使用指针和使用malloc或newlike来声明动态数组int*array=newint[strlen(argv[2])];但是我已经写过了intarray[strlen(argv[2])];没有报错我读到静态数组只能通过给常量数组大小来声明,但在这里我给静态数组一个可变大小为什么这么感谢使用它是否安全,或者是否有可能在后面的任何阶段它都会给我使用gcclinux带来问题 最佳答案 您拥有的称为可变长度数组(VLA),它不是C++的一部分,尽管它是C99的一部分。许多编译器提供此功能作为扩展。即

c++ - 您如何处理标准库中的 signed char -> int 问题?

这是我工作中长期存在的问题,我意识到我仍然没有好的解决方案......C天真地为一个int定义了它所有的字符测试函数:intisspace(intch);但是char通常是带符号的,并且完整的字符通常不适合int或用于字符串的任何单个存储单元******。而这些函数已经成为当前C++函数和方法的逻辑模板,为当前的标准库奠定了基础。事实上,他们仍然受到支持,afaict。因此,如果您使用isspace(*pchar),您最终可能会遇到符号扩展问题。它们很难被发现,因此根据我的经验,它们很难防范。同样,因为isspace()和它的同类都采用整数,并且因为字符的实际宽度通常在没有字符串分析的

c++ - 线程环基准

今天我正在做ProgrammingErlang一书中的线程环练习,并在谷歌上搜索其他解决方案以进行比较。我发现语言枪战与benchmark有完全相同的问题。.我的印象是这是Erlang应该很快的领域,但事实证明C和C++再次领先。我怀疑C/C++程序没有遵循“将token从一个线程传递到另一个线程”的规则。在阅读它们之后,它们似乎都操作了一些共享内存和全局变量,这与Erlang代码不同,但我可能是错的。我的问题是:它们是在做同样的事情,还是C/C++代码在概念上与Erlang不同(而且速度更快)?还有一个问题:当解决方案非常相似时,为什么Haskell比Erlang更快?

c++ - LuaL_openlibs() 和沙盒脚本

我正在将Lua(5.1)嵌入到C/C++应用程序中。我正在使用LuaL_openlibs()函数加载基础库。但是,此函数加载了一些我想禁用的其他库,以便我的Lua脚本无法使用它们。具体来说,我想禁用IO和OS模块。有没有我可以调用的函数来以编程方式禁用(或卸载)这些模块,以便我可以创建一个安全的沙箱环境来运行Lua脚本? 最佳答案 luaL_openlibs只是遍历在同一个文件中声明的库加载器列表。只需删除/注释掉luaopen_io和luaopen_os行。完成。如果您不喜欢编辑Lua源代码,那么您可以定义自己的函数,省去这两个库

c++ - 什么是用于 C/C++ 的良好多平台 vector 图形库?

我正在寻找一个很好的C/C++vector图形多平台库。有什么建议或想法吗?谢谢编辑:感谢您的所有回答!!例如,谁能告诉我qt与cairo的优缺点?开罗获得了更多的选票,但根据一些基准测试,它似乎慢了5到7倍...... 最佳答案 你可以试试Cairo-它是开源的,不太重,并且具有灵活的许可证。 关于c++-什么是用于C/C++的良好多平台vector图形库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

c++ - 为什么 C++ 不使用 C++ 元素/样式重新实现 C 标准函数?

对于一个具体的例子,考虑atoi(conststd::string&)。这非常令人沮丧,因为我们作为程序员需要经常使用它。更普遍的问题是,为什么C++标准库不使用C++字符串、C++vector或其他C++标准元素重新实现标准C库,而不是保留旧的C标准库并强制我们使用旧的char*接口(interface)?它非常耗时,并且在这两个接口(interface)之间转换数据类型的代码不容易优雅。是否出于兼容的原因,考虑到遗留的C代码比现在多得多,保留这些C标准接口(interface)会使从C代码到C++的转换更容易?另外,听说很多C++可用的库对STL做了很多增强和扩展,请问有库支持这些

c++ - 如何使用 C++ 中的 C99 样式数组函数签名最好地调用函数

我正在用C++编写一些代码,需要调用用C99编写的库。该库在其函数参数中使用带有static关键字的C99样式数组声明。即,这样:voidmy_func(intn,intmy_ints[staticn]);但是,当在我的C++项目中包含该库的header时,编译器(clang)在使用-pedantic标志时会抛出警告:>g++-pedantic-cmy_code.cppInfileincludedfrommy_code.cpp:./my_c_lib.h:warning:variablelengtharraysareaC99feature[-Wvla-extension]voidmy_f

c++ - stdio 总是设置 errno 吗?

当stdio流遇到错误(但不是EOF)时,将设置流的错误指示器,以便ferror()返回非零值。我一直认为errno中提供了更多信息。但我怎么知道的?一些功能的文档[例如manfopenunderLinux]表示errno也将被设置。但是manfgets根本没有提到errno。glibc信息页面令人放心:Inadditiontosettingtheerrorindicatorassociatedwiththestream,thefunctionsthatoperateonstreamsalsoset`errno'inthesamewayasthecorrespondinglow-lev